package com.tosh;

import com.tosh.model.Film;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.List;
import java.util.Scanner;

/**
 * User: arsentyev
 * Date: 13.12.12
 */
public class Main {
    public static void main(String... args) throws Exception {
//        Parser.parse(streamToString(new BufferedInputStream(new FileInputStream("D:\\movie.xml"))));

        parse("http://static.ozone.ru/multimedia/yml/facet/movie.xml");

//        Parser.parse(XML);
    }

    private static void parse(String xml) {
        try {
            BufferedInputStream bis = null;
            try {
                bis = new BufferedInputStream(new URL(xml).openStream());
                List<Film> films = Parser.parse1(bis);
                films.size();
            } finally {
                bis.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static String streamToString(InputStream is) {
        try {return new Scanner(is).useDelimiter("\\A").next();} catch (Exception e) {return null;}
    }

    private static void transfer() {
        String xml = "http://static.ozone.ru/multimedia/yml/facet/movie.xml";
        try {
            BufferedInputStream bis = null;
            BufferedOutputStream bos = null;
            try {
                bis = new BufferedInputStream(new URL(xml).openStream());
                bos = new BufferedOutputStream(new FileOutputStream("D:\\movie.xml", false));

                int i = -1;
                while ((i = bis.read()) != -1) {
                    bos.write(i);
                }
            } finally {
                bis.close();
                bos.flush();
                bos.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static final String XML = "<offer id=\"3305648\" type=\"artist.title\" available=\"true\">\n" +
            "        <url>http://www.ozon.ru/context/detail/id/3305648/?from=prt_xml_facet</url>\n" +
            "        <price>99</price>\n" +
            "        <currencyId>RUR</currencyId>\n" +
            "        <categoryId>1133211</categoryId>\n" +
            "        <categoryId>1133199</categoryId>\n" +
            "        <picture>http://www.ozon.ru/multimedia/video_dvd_covers/1000528789.jpg</picture>\n" +
            "        <delivery>true</delivery>\n" +
            "        <orderingTime>\n" +
            "          <ordering>На складе</ordering>\n" +
            "        </orderingTime>\n" +
            "        <title>Эскорт 3</title>\n" +
            "        <year>1999</year>\n" +
            "        <media>DVD</media>\n" +
            "        <starring>Джули Стрэйн, Тим Абель, Лэндон Холл, Роберт Донован, Росс Хаген</starring>\n" +
            "        <director>Том Попатолоус</director>\n" +
            "        <originalName>The Escort III</originalName>\n" +
            "        <country>США</country>\n" +
            "        <description>Джули Стрэйн (\"Звездная болезнь\"), Росс Хаген (\"Остров динозавров\"), Тим Абель (\"Быстрое реагирование\") в саспенс триллере Тома Попатолоуса \"Эскорт 3\". После загадочного убийства деловой красавицы Джули Кларк основным подозреваемым становится ее коллега, молодой архитектор Джим Корриган. Бывалый детектив Грабовский упрямо выведывает тайны его личной жизни и вскоре узнаёт, что этот хладнокровный бизнесмен был завсегдатаем элитной фирмы эскорт-услуг, в которой подрабатывала Джули. Петля на шее Джима начинает затягиваться, когда полиция узнаёт о его хитрых финансовых аферах и ссоре с Джули, но внезапно железную версию следствия разрушает жестокое убийство Джима. Теперь только опытный Крэйг Грабовский сможет узнать, кому перешли дорогу Джули и Джим, поплатившись за это своей жизнью.</description>\n" +
            "        <barcode>4607087679134</barcode>\n" +
            "      </offer>";
}